/**
 *
 * @classDesc: 功能描述:(多线程之买火车票案例-展示线程不安全)
 * @author:
 * @createTime:
 * @version: v1.0
 */
class ThreadTrain1 implements Runnable {
    // 这是货票总票数,多个线程会同时共享资源
    private int trainCount = 20;
    private Object mutex = new Object();// 自定义多线程同步锁

    @Override
    public void run() {
        while (trainCount > 0) {// 循环是指线程不停的去卖票
            try {
                // 等待100毫秒
                Thread.sleep(10);
            } catch (InterruptedException e) { }
            sale();
        }
    }

    /*
     * @methodDesc: 功能描述:(出售火车票)
     */
    public void sale() {
        synchronized (mutex) {
            if (trainCount > 0) {
                try {
                    Thread.sleep(10);
                } catch (Exception e) { }
                System.out.println(Thread.currentThread().getName() + ",出售 第" + (20 - trainCount + 1) + "张票.");
                trainCount--;
            }
        }
    }



    public static void main(String[] args) {
        ThreadTrain1 threadTrain = new ThreadTrain1(); // 定义 一个实例
        Thread thread1 = new Thread(threadTrain, "一号窗口");
        Thread thread2 = new Thread(threadTrain, "二号窗口");
        thread1.start();
        thread2.start();
    }
    //结论发现，多个线程共享同一个全局成员变量时，做写的操作可能会发生数据冲突问题
//    二号窗口,出售 第1张票.
//    一号窗口,出售 第1张票.
//    一号窗口,出售 第3张票.
//    二号窗口,出售 第4张票.
//    一号窗口,出售 第5张票.
//    二号窗口,出售 第5张票.
//    一号窗口,出售 第7张票.
//    二号窗口,出售 第8张票.
//    一号窗口,出售 第9张票.
//    二号窗口,出售 第10张票.
//    一号窗口,出售 第11张票.
//    二号窗口,出售 第11张票.
//    一号窗口,出售 第13张票.
//    二号窗口,出售 第14张票.
//    一号窗口,出售 第15张票.
//    二号窗口,出售 第15张票.
//    一号窗口,出售 第17张票.
//    二号窗口,出售 第17张票.
//    一号窗口,出售 第19张票.
//    二号窗口,出售 第19张票.
//    一号窗口,出售 第21张票.
//    二号窗口,出售 第22张票.
//    二号窗口,出售 第23张票.
//    一号窗口,出售 第24张票.
//    二号窗口,出售 第25张票.
//    一号窗口,出售 第26张票.
//    一号窗口,出售 第27张票.
//    二号窗口,出售 第28张票.
//    一号窗口,出售 第29张票.
//    二号窗口,出售 第30张票.
//    一号窗口,出售 第31张票.
//    二号窗口,出售 第32张票.
//    一号窗口,出售 第33张票.
//    二号窗口,出售 第34张票.
//    一号窗口,出售 第35张票.
//    二号窗口,出售 第36张票.
//    一号窗口,出售 第37张票.
//    二号窗口,出售 第38张票.
//    一号窗口,出售 第39张票.
//    二号窗口,出售 第40张票.
//    一号窗口,出售 第41张票.
//    二号窗口,出售 第42张票.
//    一号窗口,出售 第43张票.
//    二号窗口,出售 第44张票.
//    一号窗口,出售 第45张票.
//    二号窗口,出售 第46张票.
//    一号窗口,出售 第47张票.
//    二号窗口,出售 第48张票.
//    一号窗口,出售 第49张票.
//    二号窗口,出售 第50张票.
//    二号窗口,出售 第51张票.
//    一号窗口,出售 第52张票.
//    二号窗口,出售 第53张票.
//    一号窗口,出售 第54张票.
//    二号窗口,出售 第55张票.
//    一号窗口,出售 第55张票.
//    二号窗口,出售 第57张票.
//    一号窗口,出售 第58张票.
//    一号窗口,出售 第59张票.
//    二号窗口,出售 第60张票.
//    一号窗口,出售 第61张票.
//    二号窗口,出售 第62张票.
//    二号窗口,出售 第63张票.
//    一号窗口,出售 第63张票.
//    一号窗口,出售 第65张票.
//    二号窗口,出售 第66张票.
//    二号窗口,出售 第67张票.
//    一号窗口,出售 第68张票.
//    一号窗口,出售 第69张票.
//    二号窗口,出售 第69张票.
//    一号窗口,出售 第71张票.
//    二号窗口,出售 第72张票.
//    一号窗口,出售 第73张票.
//    二号窗口,出售 第74张票.
//    二号窗口,出售 第75张票.
//    一号窗口,出售 第75张票.
//    二号窗口,出售 第77张票.
//    一号窗口,出售 第77张票.
//    二号窗口,出售 第79张票.
//    一号窗口,出售 第80张票.
//    二号窗口,出售 第81张票.
//    一号窗口,出售 第81张票.
//    二号窗口,出售 第83张票.
//    一号窗口,出售 第84张票.
//    二号窗口,出售 第85张票.
//    一号窗口,出售 第86张票.
//    二号窗口,出售 第87张票.
//    一号窗口,出售 第88张票.
//    一号窗口,出售 第89张票.
//    二号窗口,出售 第90张票.
//    一号窗口,出售 第91张票.
//    二号窗口,出售 第92张票.
//    一号窗口,出售 第93张票.
//    二号窗口,出售 第94张票.
//    二号窗口,出售 第95张票.
//    一号窗口,出售 第96张票.
//    二号窗口,出售 第97张票.
//    一号窗口,出售 第98张票.
//    二号窗口,出售 第99张票.
//    一号窗口,出售 第100张票.

    //使用 synchronized 后
    //二号窗口,出售 第1张票.
    //一号窗口,出售 第2张票.
    //二号窗口,出售 第3张票.
    //一号窗口,出售 第4张票.
    //二号窗口,出售 第5张票.
    //一号窗口,出售 第6张票.
    //二号窗口,出售 第7张票.
    //一号窗口,出售 第8张票.
    //二号窗口,出售 第9张票.
    //一号窗口,出售 第10张票.
    //二号窗口,出售 第11张票.
    //一号窗口,出售 第12张票.
    //二号窗口,出售 第13张票.
    //一号窗口,出售 第14张票.
    //二号窗口,出售 第15张票.
    //一号窗口,出售 第16张票.
    //二号窗口,出售 第17张票.
    //一号窗口,出售 第18张票.
    //二号窗口,出售 第19张票.
    //一号窗口,出售 第20张票.
    //二号窗口,出售 第21张票.
    //一号窗口,出售 第22张票.
    //二号窗口,出售 第23张票.
    //一号窗口,出售 第24张票.
    //二号窗口,出售 第25张票.
    //一号窗口,出售 第26张票.
    //二号窗口,出售 第27张票.
    //一号窗口,出售 第28张票.
    //二号窗口,出售 第29张票.
    //一号窗口,出售 第30张票.
    //二号窗口,出售 第31张票.
    //一号窗口,出售 第32张票.
    //二号窗口,出售 第33张票.
    //一号窗口,出售 第34张票.
    //二号窗口,出售 第35张票.
    //一号窗口,出售 第36张票.
    //二号窗口,出售 第37张票.
    //一号窗口,出售 第38张票.
    //二号窗口,出售 第39张票.
    //一号窗口,出售 第40张票.
    //二号窗口,出售 第41张票.
    //一号窗口,出售 第42张票.
    //二号窗口,出售 第43张票.
    //一号窗口,出售 第44张票.
    //二号窗口,出售 第45张票.
    //一号窗口,出售 第46张票.
    //二号窗口,出售 第47张票.
    //一号窗口,出售 第48张票.
    //二号窗口,出售 第49张票.
    //一号窗口,出售 第50张票.
    //二号窗口,出售 第51张票.
    //一号窗口,出售 第52张票.
    //二号窗口,出售 第53张票.
    //一号窗口,出售 第54张票.
    //二号窗口,出售 第55张票.
    //一号窗口,出售 第56张票.
    //二号窗口,出售 第57张票.
    //一号窗口,出售 第58张票.
    //二号窗口,出售 第59张票.
    //一号窗口,出售 第60张票.
    //二号窗口,出售 第61张票.
    //一号窗口,出售 第62张票.
    //二号窗口,出售 第63张票.
    //一号窗口,出售 第64张票.
    //二号窗口,出售 第65张票.
    //一号窗口,出售 第66张票.
    //二号窗口,出售 第67张票.
    //一号窗口,出售 第68张票.
    //二号窗口,出售 第69张票.
    //一号窗口,出售 第70张票.
    //二号窗口,出售 第71张票.
    //一号窗口,出售 第72张票.
    //二号窗口,出售 第73张票.
    //一号窗口,出售 第74张票.
    //二号窗口,出售 第75张票.
    //一号窗口,出售 第76张票.
    //二号窗口,出售 第77张票.
    //一号窗口,出售 第78张票.
    //二号窗口,出售 第79张票.
    //一号窗口,出售 第80张票.
    //二号窗口,出售 第81张票.
    //一号窗口,出售 第82张票.
    //二号窗口,出售 第83张票.
    //一号窗口,出售 第84张票.
    //二号窗口,出售 第85张票.
    //一号窗口,出售 第86张票.
    //二号窗口,出售 第87张票.
    //一号窗口,出售 第88张票.
    //二号窗口,出售 第89张票.
    //一号窗口,出售 第90张票.
    //二号窗口,出售 第91张票.
    //一号窗口,出售 第92张票.
    //二号窗口,出售 第93张票.
    //一号窗口,出售 第94张票.
    //二号窗口,出售 第95张票.
    //一号窗口,出售 第96张票.
    //二号窗口,出售 第97张票.
    //一号窗口,出售 第98张票.
    //二号窗口,出售 第99张票.
    //一号窗口,出售 第100张票.


}
